package com.hbase;

import com.until.HBUtils;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

/**
 * @Author：YuanHaHa
 * @Date：2024/7/5 22:06
 */
public class DeleteTableData {
    public static void main(String[] args) throws IOException {
        // 获取 数据库连接
        Connection connection = HBUtils.getConnection();
        // 获取 Table 对象
        Table personTable = connection.getTable(TableName.valueOf("Person"));
        // deleteAll 删除一个 rowkey中所有的数据
        // 封装 Delete 对象
        Delete delete = new Delete(Bytes.toBytes("1001"));
        // 注意 : 使用addColumn添加信息删除数据的时候 只会删除最新版本的数据 ! 哪怕数据只有一个 版本 也会删除新的版本的数据 ,
        // 数据会退回到上一个版本的数据 一般使用 addColumns 可以把所有版本的数据全部删除
        // 当然也可以使用 addColumn
        //delete.addColumn(, , );
        delete.addColumns(Bytes.toBytes("info01"), Bytes.toBytes("name"));
        // 删除数据
        personTable.delete(delete);
        System.out.println("删除成功....");

        // 删除 指定 Rowkey的全部数据
        Delete delete01 = new Delete(Bytes.toBytes("1000"));
        // 删除不存在的数据 不会报错
        personTable.delete(delete01);

        System.out.println("删除成功...");

        // 释放连接
        HBUtils.release(connection, null);
    }
}
